package com.tinchos.entidades;

import java.util.ArrayList;
import java.util.List;

public class Carrera {
	private String codigo;
	private String nombre;
	private List materiasAprobadas;
	private List materiasCursando;
	
	public Carrera() {
		this.materiasAprobadas = new ArrayList();
		this.materiasCursando = new ArrayList();
	}
	
	public Carrera(String nombre, String codigo) {
		
		this();
		this.nombre = nombre;
		this.codigo = codigo;
		
	}
	
	public void agregarMateriaCursando(MateriaCursando materia) {
	
		this.materiasCursando.add(materia);
	
	}
	
	public void agregarMateriaAprobada(MateriaAprobada materia) {
	
		this.materiasAprobadas.add(materia);
	
	}
	
	public Double obtenerPromedioFinal() {
		if (materiasAprobadas.isEmpty()) return null;
		
		double res = 0;
		
		for (int i = 0; i < materiasAprobadas.size(); i++) {
			MateriaAprobada mat = (MateriaAprobada) materiasAprobadas.get(i);
			res += mat.getNotaFinal().doubleValue();
		}
		
		return new Double(res/materiasAprobadas.size());
	}

	public Double obtenerPromedioCursadas() {
		
		if (materiasAprobadas.isEmpty()) return null;
		
		double res = 0;
		
		for (int i = 0; i < materiasAprobadas.size(); i++) {
			MateriaAprobada mat = (MateriaAprobada) materiasAprobadas.get(i);
			res += mat.getNotaCursada().doubleValue();
		}
		
		return new Double(res/materiasAprobadas.size());
		
	}

	public Double obtenerPromedio() {
		
		if (materiasAprobadas.isEmpty()) return null;
		
		double res = 0;
		
		for (int i = 0; i < materiasAprobadas.size(); i++) {
			MateriaAprobada mat = (MateriaAprobada) materiasAprobadas.get(i);
			res += mat.getNotaCursada().doubleValue();
			res += mat.getNotaFinal().doubleValue();
		}
		
		return new Double(res/(2*materiasAprobadas.size()));
		
	}
	
	public List getMateriasAprobadas() {
		return materiasAprobadas;
	}

	public void setMateriasAprobadas(List materiasAprobadas) {
		this.materiasAprobadas = materiasAprobadas;
	}

	public List getMateriasCursando() {
		return materiasCursando;
	}

	public void setMateriasCursando(List materiasCursando) {
		this.materiasCursando = materiasCursando;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getCodigo() {
		return codigo;
	}

	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}

	
	
}
